b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

c 计算结构体大小 C语言学习入门(6)

电脑杂谈  发布时间:2017-12-25 13:05:49  来源:网络整理

}

数组、指针、函数参数

形参数组,实参指针

void change(int b[]) {

b[0] = 10;

}

int main()

{

// 定义一个int类型的数组

int a[4] = {1, 2, 3, 4};

int *p = a;

// 将数组名a传入change函数中

change(p);

// 查看a[0]

printf(“a[0]=%d”, a[0]);

return 0;

}

形参指针,实参数组

void change(int *b) {

b[0]= 10;

// 或者*b = 10;

b[1] = 11;

// 或 *(b+1) = 11;

}

int main()

{

// 定义一个int类型的数组

int a[4] = {1, 2, 3, 4};

// 将数组名a传入change函数中

change(a);

// 查看a[0]

printf(“a[0]=%d”, a[0]);

return 0;

} //可以看出,在很多情况下,指针和数组是可以相互切换使用的。但是,并不能说指针就等于数组

用指针遍历字符串的所有字符

charchs[] =“abcde”;

char*p;

p = chs;

for(; *p !=‘\0’;p++)

{

printf(“data:%c “, *p);

}

printf(“\n”);

用指针直接指向字符串

char*p =“abcde”;

strlen(“abde”);

函数在string.h中的声明

size_t strlen(constchar*);

char *strcpy(char*,constchar*);//字符串拷贝函数

char *strcat(char*,constchar*);//字符串拼接函数

int strcmp(constchar*,constchar*);//字符串比较函数

它们的参数都是指向字符变量的指针类型,因此可以传入指针变量或者数组名。

指针指向字符串的其他方式

1chars[10];

2s =“mj”;//编译器肯定报第2行的错,因为s是个常量,代表数组的首地址,不能进行赋值运算

1char*s =“mj”;

2

3*s =“like”;

第3行代码犯了2个错误:

第3行代码相当于把字符串”like”存进s指向的那一块内存空间,由第1行代码可以看出,s指向的是”mj”的首字符’m’,

也就是说s指向的一块char类型的存储空间,只有1个字节,要”like”存进1个字节的空间内,肯定内存溢出

由第1行代码可以看出,指针s指向的是字符串常量“mj”!因此是不能再通过指针来修改字符串内容的!

就算是*s = ‘A’这样”看起来似乎正确”的写法也是错误的,因为s指向的一个常量字符串,不允许修改它内部的字符。c 计算结构体大小

chara[] =“lmj”;定义的是一个字符串变量! char *p = a; *p = ‘L’; 变量可以通过指针改变,常量不行

char*p2 =“lmj”;定义的是一个字符串常量!

返回指针的函数

返回指针的函数的一般形式为:类型名*函数名(参数列表)

//将字符串str中的小写字母变成大写字母,并返回改变后的字符串

//注意的是:这里的参数要传字符串变量,不能传字符串常量

char * upper(char *str) {

//先保留最初的地址。因为等会str指向的位置会变来变去的。

char *dest = str;

//如果还不是空字符

while (*str != ‘\0’) {

//如果是小写字母


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-55787-6.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 秦康公嬴弘
      秦康公嬴弘

      诺列加的前车之鉴你忘了

    • 李雪峰
      李雪峰

      我们现在最需要的是和平发展的时间

    • 徐世真
      徐世真

      同我们一样

    热点图片
    拼命载入中...