HTML

Proghelp

Programozási tutorial-ok és feladat kidolgozások főleg Debreceni Egyetem Mérnök Informatikus hallgatóinak számára!

Friss topikok

Linkblog

Lakorkártyák III.

szimih 2011.03.26. 20:36

1. kártya

 

#include <stdio.h>

int
main (void)
{
  struct                         // struktúra melynek egy változója van alma ami integer típusú
  {
    int alma;
  } p = {55}, *pp;              // p egy struktúra, pp egy struktúrára mutató mutató

  pp = &p;                         // pp a p változóra mutató mutató

  printf ("%d\n", (*pp).alma);   // pp mutatót használva kiíratjuk a p alma értékét (55)

  (*pp).alma = 65;              // pp mutató átal mutatott p alma értékének megváltoztatása 65-re

  printf ("%d\n", pp->alma);   // pp mutatót használva kiíratjuk a p alma értékét (65)

  return 0;
}
/*
Lefordul
Kimenet:
55
65
*/
#include <stdio.h>

int
main (void)
{
  struct aaa                  // struktúra melynek neve aaa és tartalmaz egy változót alma ami integer típusú
  {
    int alma;
  } p = {55}, *pp;              // p egy struktúra, pp egy struktúrára mutató mutató

  pp = &p;                         // pp a p változóra mutató mutató

  printf ("%d\n", (*pp).alma);   // pp mutatót használva kiíratjuk a p alma értékét (55)

  (*pp).alma = 65;              // pp mutató átal mutatott p alma értékének megváltoztatása 65-re

  printf ("%d\n", pp->alma);   // pp mutatót használva kiíratjuk a p alma értékét (65)

  return 0;
}
/*
Lefordul
Kimenet:
55
65
*/

2. kártya

#include <stdio.h>

int
main (void)
{
  struct                         // struktúra melynek egy változója van alma ami integer típusú
  {
    int alma;
  } p = {55}, *pp;              // p egy struktúra, pp egy struktúrára mutató mutató

  pp = &p;                         // pp a p változóra mutató mutató

  printf ("%d\n", (*pp).alma);   // pp mutatót használva kiíratjuk a p alma értékét (55)

  (*pp.)alma = 65;              // pp mutatót rosszul címezzük mivel a pont belül van a zárójelen és így nem értelmezzük az alma változóját sem

  printf ("%d\n", pp->alma);   // pp mutatót használva kiíratjuk a p alma értékét (65)

  return 0;
}
/*
Nem fordul le!
*/
#include <stdio.h>

int
main (void)
{
  struct                         // struktúra melynek egy változója van alma ami integer típusú
  {
    int alma;
  } p = {55}, *pp;              // p egy struktúra, pp egy struktúrára mutató mutató

  pp = &p;                         // pp a p változóra mutató mutató

  printf ("%d\n", (*pp).alma);   // pp mutatót használva kiíratjuk a p értékét (55)

  pp->alma= 65;                      // pp mutató átal mutatott p alma értékének megváltoztatása 65-re

  printf ("%d\n", (*pp).alma);   // pp mutatót használva kiíratjuk a p értékét (65)

  return 0;
}
/*
Lefordul
Kimenet:
55
65
*/

3. kártya

#include <stdio.h>

int
main (void)
{
  struct         // struktúra melynek egy változója van alma ami integer típusú
  {
    int alma;
  } p = {55}, *pp;      // p egy struktúra, pp egy struktúrára mutató mutató

  pp = &p;         // pp a p változóra mutató mutató

  printf ("%d\n", ++pp->alma);   // pp által mutatott alma értékét menöveljül egyel majd kiíratjuk (56)

  return 0;
}
/*
Lefordul
Kimenet:
56
*/
#include <stdio.h>

int
main (void)
{
  struct         // struktúra melynek egy változója van alma ami integer típusú
  {
    int alma;
  } p = {55}, *pp;      // p egy struktúra, pp egy struktúrára mutató mutató

  pp = &p;         // pp a p változóra mutató mutató

  printf ("%d\n", ++(pp->alma));// pp által mutatott alma értékét menöveljül egyel majd kiíratjuk (56) ( zárójel nem változtat semmin mivel előbb úgyis a pp-> értélekődik ki )

  return 0;
}
/*
Lefordul
Kimenet:
56
*/

4. kártya

#include <stdio.h>

int
main (void)
{
  int korte = 54;

  struct         // struktúra melynek egy változója van alma ami integer típusú
  {
    int alma;
  } p = {&korte}, *pp;      // p egy struktúra mely megkapja értééként a körte memóriacímét, pp egy struktúrára mutató mutató

  pp = &p;         // pp a p változóra mutató mutató

  printf ("%d\n", *pp->alma);  // rossz mutató címzés, vagy *(pp).alam vagy pp->alma, gcc üzenete: invalid type argument of ‘unary *’ (have ‘int’)

  return 0;
}
/*
NEM fordul le
*/
#include <stdio.h>

int
main (void)
{
  int korte = 54;

  struct         // struktúra melynek egy változója van alma ami integer típusú
  {
    int alma;
  } p = {&korte}, *pp;      // p egy struktúra mely megkapja értééként a körte memóriacímét, pp egy struktúrára mutató mutató

  pp = &p;                          // pp a p változóra mutató mutató

  printf ("%d\n", (*pp->alma)++);  // rossz mutató címzés, vagy *(pp).alam vagy pp->alma,  gcc üzenete: invalid type argument of ‘unary *’ (have ‘int’)
  printf ("%d\n", (*pp->alma)++); 

  return 0;
}
/*
NEM fordul le
*/

5. kártya

char *
masol (const char *mit)
{
  char mibe[TOMB_MERET];
  char *p = mibe;
  char *vissza = mibe;

  for (; *p++ = *mit++;);
// verem lokálisan foglalt terület visszadasa
  return vissza;
}
/*
A függvény lokálisan foglal magának helyet a memóriában majd visszad erre a címre mutatót. Miután a lokális terület csak addig a függvényé míg fut a masol, lefutása után visszadott memóia területen akár egy másik program is dolgozhat és a mi általunk várt eredmény hibás lehet mivel másik program felülírta a tertalmat. 
*/

Szólj hozzá!

A bejegyzés trackback címe:

https://proghelp.blog.hu/api/trackback/id/tr52774142

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása