有关C语言指针的问题:为啥最后结果是空指针?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有关C语言指针的问题:为啥最后结果是空指针?相关的知识,希望对你有一定的参考价值。

字符串常量不能够进行赋值或当做返回值,如下情况。
不可以这样:
char str[10];
str[10]="123456";
只可以这样:
char str[10]="12345678";
//这个属于定义变量并初始化的过程,应注意与普通的赋值语句进行区别追答

还有,char p[]是局部变量,靠初始化获取的空间,其作用域仅局限于函数内部。。。以上的程序需要用到动态内存分配函数,比如malloc()。

参考技术A 把p[]换成*p就行了。 参考技术B

返回一个局部变量不是一个好主意, 最好是传递一个buffer进去接收数据

C语言指针问题

1`输入一个字符串,要求显示该字符串及字符个数;在输入数字m,要求从m个字符开始街区该字符串于最后。
2`输入星期几,输出对应兴起的英文名称,用指针数组实现。
第一题后面部分为:再输入数字m,要求从m个字符开始截取该字符串于最后。

第二题:(第一题的问题问得有些混乱)
#include <stdio.h>

void main()

char* week[7] = "Sun","Mon","Tue","Wed","Thu","Fri","Sat";
printf("please in put 0-6!!!\\n");
char num;
scanf("%c", &num);

switch(num)

case \'0\':
printf("%s\\n",week[0]);
case \'1\':
printf("%s\\n",week[1]);
case \'2\':
printf("%s\\n",week[2]);
case \'3\':
printf("%s\\n",week[3]);
case \'4\':
printf("%s\\n",week[4]);
case \'5\':
printf("%s\\n",week[5]);
case \'6\':
printf("%s\\n",week[6]);
default:
break;

参考技术A 一楼的大哥,人家是用指针来做的呀!!

以上是关于有关C语言指针的问题:为啥最后结果是空指针?的主要内容,如果未能解决你的问题,请参考以下文章

c语言 这段代码是啥意思,结果为啥是20,20

为啥说C语言的精髓是指针?

C语言中学指针时*和&是相互补充的,为啥啊?

C语言中关于结构体指针为啥不能在函数内赋初值的问题?

c语言中指针为啥被称为重型武器?

在C语言中能否直接给指针指向的数据赋值?为啥?