| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1598 人关注过本帖
标题:一道C题目引出来的困惑.
取消只看楼主 加入收藏
wangchengbin
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2012-6-27
结帖率:80%
收藏
已结贴  问题点数:20 回复次数:6 
一道C题目引出来的困惑.
明白形参传递,  但是我有另外困惑,红色的int a=2应该是全局变量.当调用f(int *a)时return (*a)++ 返回的结果应该是2吧?        谢谢!
 

#include<stdafx.h>
 #include"stdio.h"
int a=2;
 int f(int *a)
 {
      return (*a)++;
 }
 void main()
 {
      int s=0;
      {
          int a=5;
          s+=f(&a);
      }
      printf("%d\n",s);
      s+=f(&a);
      printf("%d\n",s);
 }
搜索更多相关主题的帖子: include return 
2012-07-07 11:03
wangchengbin
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2012-6-27
收藏
得分:0 
回复 5楼 TonyDeng
  请帮忙看一下为什么以下程序在运行的时候老是出错,显示: “malloc”: 找不到标识符 !
#include<stdafx.h>
#include<stdio.h>
void getmemory(char *p)
{
  p=(char *) malloc(100);
}
void test(void)
{
    char *str=NULL;
    getmemory(str);
    strcpy(str,"hello world");
    printf(str);
}
2012-07-08 09:36
wangchengbin
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2012-6-27
收藏
得分:0 
回复 5楼 TonyDeng
知道为什么了,是少了个#include<stdlib.h>头文件.  另外,我这程序为什么输出不了结果啊?  我想知道红色部分结果.
我试着用puts(str); printf("%s",str);都得不到结果了            ???
#include<stdafx.h>
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void getmemory(char *p)
{
  p=(char *) malloc(100);
}
void main(void)
{
    char *str=NULL;
    getmemory(str);
    strcpy(str,"hello world");
    printf(str);
}
2012-07-08 09:49
wangchengbin
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2012-6-27
收藏
得分:0 
回复 8楼 TonyDeng
那咱处理啊?

我只想知道strcpy(str,"hello world"); 之后 str 输出结果.
2012-07-08 10:34
wangchengbin
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2012-6-27
收藏
得分:0 
回复 10楼 TonyDeng
大概知道你的意思,如果在strcpy(str,"hello world\0");加个\0也是不行的.我在VC上试了.           

#include<stdafx.h>
 #include<stdio.h>
 #include<string.h>
 #include<stdlib.h>
 void getmemory(char *p)
 {
   p=(char *) malloc(100);
 }
 void main(void)
 {
     char *str=NULL;
     getmemory(str);
     strcpy(str,"hello world");
     printf(str);
 }
2012-07-08 10:57
wangchengbin
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2012-6-27
收藏
得分:0 
回复 14楼 TonyDeng
memset(str, 0, sizeof(str)); 这是什么函数? 什么作用
2012-07-08 11:02
wangchengbin
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2012-6-27
收藏
得分:0 
回复 11楼 hellovfp
#include<stdio.h>
 #include<string.h>
 #include<stdlib.h>
 char* getmemory(char *p)
 {
   p = (char *) malloc(100);
   return p;
 }
 int main()
 {
     char *str = NULL;
     str = getmemory(str);
     strcpy(str,"hello world");
     printf(str);
     return 0;
 }
我认为  调用str = getmemory(str);就可以等到100字节的空间吧,因为是指针 怎么还需要return p;?  

2012-07-08 11:21
快速回复:一道C题目引出来的困惑.
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.064366 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved