三九宝宝网宝宝教育教学论文

C语言指针的用法

12月25日 编辑 39baobao.com

[C语言指针搜索数组里的数]1 2 3 4 5 6 7 8 9 10 11 12 13 intmy_max = -INT_MAX; intrnd = 0; //第一步取得2113数组5261里最大数 for(i = 0; i < sizeof(arr), ++i) { if(arr[i] > my_max) my_max =...+阅读

#include

#include

#include

void sort(char *a[],int n)

{

int i,j;

char *temp;

for(i=0;i

for(j=i+1;j

if(strcmp(a[i],a[j]<0))

{

temp=a[i];

a[i]=a[j];

a[j]=temp;

}

}

int main()

{

char *a[3];

int i;

for(i=0;i<3;i++)

a[i] = (char *)malloc(sizeof(char));

for(i=0;i<3;i++)

scanf("%s",a[i]);

sort(a,3);

for(i=0;i<3;i++)

printf("%s\n",a[i]);

getch();

}

应该改成这样

其中

char *temp;

temp=a[i];

a[i]=a[j];

a[j]=temp;

做了修改

原因如下:未修改前temp是一个字符变量,而*a[i]是指针a[i]所指向的内容,就把需要交换的字符串的首字符交换了。

你要交换的是指针或者说是地址,而不是指针里的内容。这就是问题所在。

在temp前加*就表示temp也是个指针,再把a[i]前的*去掉,就实现了交换指针地址的目的。

指针的声明要加*例如

int *a;

使用的时候如果事指针操作则不要带*例如

char *a = “hank”;

a++;此时a指向的字符串就变成了“ank”

涉及到指针指向的内容的要加*例如

char b = *a;

指向数组的指针,例如

int b[10];

int *a = b;

a就是b[0]的地址*a就是b[0]的内容

a+1就是b[1]的地址依此类推

又如char *a = "hank";

那么通过a就能得到整个字符串"hank"

*a是h

*(a+1)是a

...

STRCMP是c语言函数库中的函数

虽然传参传的是指针,但是具体比较的时候比较的是里面的内容。具体涉及到指向数组的指针的应用。因为c中没有String类型,所以就只能使用char类型的指针来表示字符串。

以下为关联文档:

C语言用指针在数组中查找特定值#include<stdio.h> int find(int *p,int n,int b) { int i=0; while(i<n) { if(*p++==b) return i; i++; } return -1; } int main() { int k; int a[]={1,2,3,4,5}; int b;...

c语言中函数名就是一个指针是的。c语言中, 函数名也称为函数的指针,所以c语言中函数名就是一个指针。 “函数指针”本身首先应是指针变量,只不过该指针变量指向函数。这正如用指针变量可指向整型变量、字...

C语言如何声明一个返回函数指针的函数C语言指向函数的指针承载的信息比较复杂,组织起来要素要写全。根据指向函数的指针的书写语法,下面的代码就是一个返回函数指针的函数: int (*f(void))(int){//f是函数,没有参数,...

C语言中的函数指针函数指针是定义一个指向函数的指针,形式为:void (*p)(void); 一般用法: int fun1(int x); int fun2(int x); char fun3(int x); int fun4(char x); int main(void) { int (*p)(...

C程序中左移的具体用法是什么C语言中,“<&lt;”为左移运算符,“>&gt;”为右移运算符。 具体使用方法如下: 1、左移运算符(<<) 将一个运算对象的各二进制位全部左移若干位(左边的二进制位丢弃,右边补0)。 例:a = a <...

在C语言中11种赋值运算符的具体含义用法1.= 赋值运算符 变量=表达式 如:a=3;将a的值赋为3 2./= 除后赋值 变量/=表达式 如:a/=3;即a=a/3 3.*= 乘后赋值 变量*=表达式 如:a*=3;即a=a*3 4.%= 取模后赋值 变量%=表达式 如:a%...

C语言中的char具体用法C语言中char用于定义字符类型变量或字符指针变量,例如“char a;”则定义了变量a是字符类型,“char *a;”则定义了变量a是字符指针类型。 char是C语言整型数据中比较古怪的一个,其...

二维数组指针 C语言编程 #include int main() { int a[2][5] = {{1,2,6,3,0},{10,20,40,60,80}}; int i,flag,order,value; while(scanf("%d",&order) == 1) { flag = 1; for(i = 0; i if(order == a...

C语言中函数指针用法在C语言中,指针被广泛使用,而函数指针是最为高级的用法之一,也是容易疑惑的地方之一。 看下面这段代码: #include <stdio.h> void F(int a, int* output) { printf("a = %d\n", a)...

推荐阅读
图文推荐