当前位置:首页 » 编程语言 » c语言指针ab
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言指针ab

发布时间: 2022-02-05 14:39:49

❶ 怎么理解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]={''};
charb[10]={''};
chars[20]={''};
inta_len,b_len,i=0,j=0,pos=0;
scanf("%s",a);
fflush(stdin);
scanf("%s",b);
a_len=strlen(a);
b_len=strlen(b);
while(1)
{
if(a[i]>b[j])
{
s[pos++]=b[j++];
}
else
{
s[pos++]=a[i++];
}
if(a[i]==''&&b[j]!='')
{
for(j;j<b_len;j++)
{
s[pos++]=b[j];
}
break;
}
elseif(a[i]!=''&&b[j]=='')
{
for(i;i<a_len;i++)
{
s[pos++]=a[i];
}
break;
}
elseif(a[i]==''&&b[j]=='')
{
break;
}
}
s[pos]='';
printf(" %s",s);
return0;
}

❽ C语言调用函数互换ab,为什么要用指针。不用指针能行吗注意,是调用函数。

这是 C 语言 本身 特性 规定了 的。你只要记住 这点: 形参 必须用指针,这样才能把 通过 函数加工 后的 数值 带回来。通过函数 互换后 的a,b,才能被带回。
至于“为什么”,可以不去追究,它的理由 无非 是什么 地址啦,值啦之类,时间长了,自己会记混淆。
其它语言,例如 fortran 语言,不管形参是什么花样,都能带回。

❾ c语言 指针的传递

如果你输出printf("%d %d", *x, *y); 结果就是6,3了
由于a和b没变,所以printf("%d %d", a, b);还是3,6

❿ c语言 为何这个函数能互换ab的值

这是指针参数的特点,改变的是其指向的地址的值。

你就可以相像一下:
给了hx(...)一共a, b两个盒子,可以换里面的东西,但无论怎么样,a盒子还是a盒子,b盒子还是b盒子。