1. c语言指针是什么
C语言指针其实也是变量,只不过指针变量存储的是其它变量的地址。
C语言里对变量取地址:&变量名,对指针取指向的变量的值:*指针。
指针有类型的区别,即指针指向什么类型,要在定义指针时指定类型。
定义举例:int *p;//p是指向int类型的指针,只能把int变量地址赋值给p。
用指针有很多安全隐患,容易内存溢出,泄漏。
java应该是出于安全考虑不用指针,C#语言也是。
2. C语言函数指针,怎么写我有个例子,修改修改
您好,很高兴回答您的问题。
你的程序问题出在了对函数指针的声明。
因为你是把函数指针指向void func(int a),所以函数指针应该是“指向有一个int参数并且返回值为空的函数指针”,而你声明指针的时候没有说明有一个int参数,并且声明后面少了分号。所以第二行应该改为
void(*pf)(inta);
这样就好了。
希望对你有帮助,祝学习愉快哈。
3. C语言编如何写指针函数
1
#include<iostream>
using namespace;
void main()
{
int a=0,b=0;
int *s=a;int *p=b;
cout<<“please the two numbers”;
cin>>a;
cin>>b;
int fun(int *a,int *b)
{
if(*a==*b)
{
cout<<"different\n";return 1;
else cout<<"same\n"; return 0;
}
fun(s,p);
}
include<iostream>
using namespace std;
void main()
{
int a[10]={0};
int i=0,j=0,k=0,p=0,m=0;
int *x=a;int *n=a;
for(;i<=9;++i)
{
cout<<"input the "<<i+1<<"number(s)";
cin>>a[i];
}
int fun(int *a)
{
for(;*x!=null;++x)
for(;m<=9;++m)
{
if(*x<a[m]) break;
n=x;
}
cout<<"the max is"<<*n;
}
4. C语言指针写法
这有什么乱的?这三种写法都一样啊。定义指针的时候*要在类型的右边,变量的左边。至于中间有多少空格没关系的,但也不能没空格。比较规范的是第二种写法。
比如说:
int
*a,b;
这样就表示定义了一个整型的指针a,定义一个整型变量b。
5. C语言的指针怎么用啊
在你提供的代码上进行了增加,我感觉你们老师可能是想让你们把指针用在数组上吧,对于一个指向数组的指针p,p++指向数组的下一个元素。此外,使用指针可以很好的提升代码执行效率。有问题可以互相交流。
#include <stdio.h>
#include <stdlib.h>
int square(int a, int b)
{
return a*b;
}
int main()
{
int i, j, l, w, s = 0, number = 1, max;
int *length = &l, *width = &w, *p = &i;
printf("请输入您所需测量田地的数量: \n");
scanf("%d",p);
int a[*p];
int *y = a;
for(j = 0; j < *p; j++)
{
printf("请输入第%d块田的长和宽: \n", j+1);
scanf("%d %d",length,width);
*(y+j) = square(*length, *width);
s = s + *(y+j);
max = *y;
if( *(y+j) > max)
{
max = *(y+j) ;
number = j+1;
}
}
for(j = 0; j < *p; j++)
{
printf("您第%d块田的面积为%d:\n",j+1,*(y+j));
}
printf("您的田地总面积为: %d \n", s);
printf("您最大面积一块第为第%d块,面积为%d !!!", number, max);
return 0;
}
6. c语言指针书写规范
这两种都是正确的写法。
个人建议将*写在空格的后面,即紧挨着变量名,像这样:
int *p;
int **pp;
因为如果写成int* p;会给人一种错觉,以为p的类型是int*,所以会以为int* p1,p2;是定义了两个指针变量,而实际上p2是一个整型变量,p1才是指针变量。
7. c语言指针用法
1、使用场景
使用指针时,必须将它指向一个变量的地址或者为它分配空间方能使用,如下所示:
#include<stdio.h>
#include <stdlib.h>
int main(int argc, char const *argv[])
{
int a[5]={0,1,2,3,4};
int *b,*d;
int c=2;
int *e=a; //e指向a数组首地址
//*b=2; 无法直接初始化
//printf("%d ", *b);
e=e+2; //移动两个地址单元
d=&c; //d指向c的地址来表示值
c=4; //修改原c变量的值,d指针的值会发生改变
b=(int *)malloc(sizeof(int));//为b分配一个int型空间来直接存储值
*b=2;//分配空间后可以直接赋值了
printf("this is e,b,c,d :%d %d %d %d ",*e,*b,c,*d);
2、类型说明
(1)int *a :表示一个指向int型变量的指针,指向的是变量的地址单元
(2)char *b:表示一个指向char变量的指针
*a表示的是这个指针指向地址的值,a为此指针本身的地址,这点要明确,一般用*(a+1)、*(a+2)来表示值,如:
int nums[5]={0,1,2,3,4};
int *a=nums;
printf("%d %d %p ",*a,*(a+1),a);
(7)c语言指针怎么写扩展阅读:
指针的运算
指针指向变量地址,若原变量的内容发生了变化,它本身也会发生变化,指针之间的运算一般为值运算和地址运算
(1)值运算:直接通过*运算方式,像a+*(a+1),结果为第一个元素与第二个元素相加。
int nums[5]={0,1,2,3,4};
int *a=nums;
(2)地址运算:通过a+i的方式.指针会指向a的下i个地址。
int nums[5]={0,1,2,3,4};
int *a=nums;
a=a+2;
printf("%d ",*a);
结果输出2。
参考资料来源 :指针-网络
8. C语言指针怎么用
在c语言中.指针被用来表示内存单元的地址,如果把这个地址用一个变量来保存,则
这种变量就称为指针变量。指针变量也分别有不同的类型,用来保存不同类型变量的地址。
严格地说.指针与指针变量是不同的,为了叙述方便,常常把指针变量就称为指针。
内存是计算机用于存储数据的存储器,以字节作为存储单元.为了能正确的访问内存单
元,必须为每一个内存单元编号,这个编号就称为该单元的地址。如果将一个旅店比喻成内
存,则旅店的房间就是内存单元,房间号码就是该单元的地址。
指针变量定义格式:
[存储类型]
数据类型
*指针变量名[=初始值]
指针变量一旦定义,必须采用赋值的方式将其与某个变量实体相联系,才能使用。指针
变量的赋值方式:
指针变量名;&普通变量名;