❶ 怎么理解c语言指针中 *a=*b
你好!!!
首先我们已经知道:a,b,都是指针变量,*a表示指针变量所指向的值,同样*b也是如此。*a=*b就是表示把指针b所指向的值赋值给指针变量a所指向的值。
但是要是指针a要是没有初始化或是开辟空间的话,这样赋值就有危险!!!
例如:
int *a;
int *b=5;
*a=*b;
首先声明一个指针变量a,但是系统并没有为其分配空间,也就是说此时指针变量的值即地址不确定的,那么*a也就表示一个不确定的值,有可能这个值是系统的重要数据,那么*a=*b;不就修改了系统的数据了吗???也就变量的危险了。
所以声明指针变量的时候一定注意初始化。
❷ c语言 中'ab'的值
a的ASCII码是10进制的97,16进制的61,b的ASCII码是10进制的98,16进制的62,顺序写到一起是16进制的6162,转换为10进制就是24930。
'ab'占用2个字节(字面上是这样),赋给int类型变量在某些编译器(如Dev-C++)中是可能的,但没有推广价值,也米有应用价值,所以这也不会出现在考试、或者笔试题目中。
❸ C语言,指针题。第一个答案是abABC,怎么解释。为什么后面的没了谢谢。
因为strcpy的时候会见“ABC”后默认的'\0'也拷贝的,而且%s类型输出的时候只认'\0',所以会是abABC,s[6]为g是因为在寻址的时候会默认向后找的
❹ C语言中指针a=b与*a=*b有什么区别
a=b就是把b的地址赋给a
*a=*b就是把b的内存地址对应的值给a
❺ C语言问题,输入ab两个整数按顺序输出。用指针做。
使用指针把变量交换
如:
int t;
if(*p1>*p2){
t=*p1;
*p1=*p2;
*p2=t;
}
指针交换
int *pt;
if(*p1>*p2){
pt=p1;
p1=p2;
p2=pt;
}
❻ C语言ab+方式打开文件以及fseek函数
打开文件可以用fopen。
函数原型:FILE * fopen(const char * path,const char * mode);
返回值:文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回NULL,并把错误代码存在errno中。
一般而言,打开文件后会做一些文件读取或写入的动作,若打开文件失败,接下来的读写动作也无法顺利进行,所以一般在fopen()后作错误判断及处理。
打开文件实例:
#include<stdio.h>
#define F_PATH "d:\\myfile\\file.dat"
int main(void)
{
FILE*fp=NULL;//需要注意
fp=fopen(F_PATH,"ab+");
if(NULL==fp)
{
return -1;//要返回错误代码
}
fclose(fp);
fp=NULL;//需要指向空,否则会指向原打开文件地址
return 0;
}
fseek函数功能:重定位流(数据流/文件)上的文件内部位置指针
注意:文件指针指向文件/流。位置指针指向文件内部的字节位置,随着文件的读取会移动,文件指针如果不重新赋值将不会改变指向别的文件
int fseek(FILE *stream, long offset, int fromwhere);
参数:stream 文件指针,fromwhere起始基准点,offset在基准点的基础上的偏移量。
返回值:成功,返回0,失败返回-1,并设置errno的值,可以用perror()函数输出错误。
实例:
#include <stdio.h>
long filesize(FILE*stream);
int main(void)
{
FILE *stream;
stream=fopen("MYFILE.TXT","w+");
fprintf(stream,"Thisisatest");
printf("FilesizeofMYFILE.TXTis%ldbytes\n",filesize(stream));
fclose(stream);
return 0;
}
long filesize(FILE*stream)
{
long curpos,length;
curpos=ftell(stream);
fseek(stream,0L,SEEK_END);
length=ftell(stream);
fseek(stream,curpos,SEEK_SET);
return length;
}
❼ C语言用指针编程,如图输出为abcdr,请大神帮忙
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
intmain(intargc,char*argv[])
{
chara[10]={'