有关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语言指针的问题:为啥最后结果是空指针?的主要内容,如果未能解决你的问题,请参考以下文章